Methods, Systems, and Computer Program Products for Enabling an Operative Coupling to a Network

ABSTRACT

Methods and systems are described for enabling an operative coupling to a network. In an aspect, first data is detected for forwarding between a first node in a first network and another node by a network relay including a first network interface hardware component operatively coupled to a first network. A determination is made that a second operative coupling to a second network of a second network interface hardware component in the network relay is disabled. The second network interface hardware component is configured to enabled the second operative coupling, in response to the determination. Data received for forwarding between the first network and the second network is forwarded via the enabled second operative coupling.

RELATED APPLICATIONS

This application is a continuation-in-part of, and claims priority toU.S. patent application Ser. No. 14/743,978, entitled “Methods, Systems,and Computer Program Products for Enabling an Operative Coupling to aNetwork,” filed Jun. 18, 2015 which is a continuation of, and claimspriority to U.S. patent application Ser. No. 14/451,355 filed on Aug. 4,2014, entitled “Methods, Systems, and Computer Program Products forEnabling an Operative Coupling to a Network”, which is a continuation ofU.S. patent application Ser. No. 13/663,513, now U.S. Pat. No.8,798,067, filed on Oct. 30, 2012, entitled “Methods, Systems, andComputer Program Products for Enabling an Operative Coupling to aNetwork,” and U.S. patent application Ser. No. 12/765,000 (Docket No0142), now U.S. Pat. No. 8,331,372, filed on Apr. 22, 2010. Thisapplication further claims the benefit of U.S. Provisional ApplicationNo. 62/626,142 filed Feb. 4, 2018.

This application is related to the following commonly owned U.S. Patentand U.S. Patent Application, the entire disclosure of each beingincorporated by reference herein: U.S. Pat. No. 8,233,482 (Docket No0139) filed on Apr. 22, 2010, entitled “Methods, Systems, and ProgramProducts for Disabling an Operative Coupling to a Network.”; and

application Ser. No. 13/531,544 (Docket No 0139C) filed on Jun. 24,2012, entitled “Methods, Systems, and Program Products for Disabling anOperative Coupling to a Network”.

BACKGROUND

Networks are separated by network relay devices such as routers,switches, and gateways. These devices and their included networkinterface hardware components remain powered on in a typical day. Forhomes and businesses there are situations where there is no one activeon a network in the home or business side of a network relay device.Nevertheless, the network relay device remains powered on with itsinterface to an outside network active. This makes not only the networkrelay device accessible to malicious traffic, it makes the insidenetwork and everything connected to it, potentially vulnerable.Firewalls are one tool used to protect the network relay device and theinside network.

One solution is to turn the network relay device off. This solutionworks best when there is a known time period when the first or insidenetwork is not being used. This solution is not ideal in lesspredictable situations. In some situations the network relay deviceserves to connect devices on the inside network. Turning the relaydevice off when there is no traffic with the outside prevents at leastsome communication on the inside network in these situations. The readerwill understand that “inside” and “outside” are relative terms fordescribing a network and its nodes from a particular perspective.

Since all these solutions require network interface hardware componentsof a network relay device to use energy even when there is no legitimatetraffic between networks connected by a network relay device, thesesolutions use some energy unnecessarily. Enabling and disabling networkinterface hardware components to outside networks in a more flexiblemanner than is currently available would enhance security and saveenergy.

Accordingly, there exists a need for methods, systems, and computerprogram products for enabling an operative coupling to a network.

SUMMARY

The following presents a simplified summary of the disclosure in orderto provide a basic understanding to the reader. This summary is not anextensive overview of the disclosure and it does not identifykey/critical elements of the invention or delineate the scope of theinvention. Its sole purpose is to present some concepts disclosed hereinin a simplified form as a prelude to the more detailed description thatis presented later.

Methods and systems are described for enabling an operative coupling toa network is described that includes detecting, by a network relayincluding a first network interface hardware component operativelycoupled to a first network, first data for forwarding between a firstnode in the first network and an other node. The method further includesdetermining that a second operative coupling of a second networkinterface hardware component in the network relay to a second network isdisabled. The method still further includes, in response to detectingthe first data for forwarding, configuring the second network interfacehardware component to enable the second operative coupling. The methodalso includes forwarding, via the enabled second operative coupling,data received for forwarding between the first network and the secondnetwork.

Still further, a system for enabling an operative coupling to a networkis described. The system includes an execution environment including aninstruction processing unit configured to process an instructionincluded in at least one of an interface activity monitor component, anetwork interface state component, an interface activator component, anda forwarding component. The system includes the interface activitymonitor component configured for detecting, by a network relay includinga first network interface hardware component operatively coupled to afirst network, first data for forwarding between a first node in thefirst network and an other node. The system further includes the networkinterface state component configured for determining that a secondoperative coupling of a second network interface hardware component inthe network relay to a second network is disabled. The system stillfurther includes the interface activator component configured for inresponse to detecting the first data for forwarding, configuring thesecond network interface hardware component to enable the secondoperative coupling. The system also includes the forwarding componentconfigured for forwarding, via the enabled second operative coupling,data received for forwarding between the first network and the secondnetwork.

BRIEF DESCRIPTION OF THE DRAWINGS

Objects and advantages of the present invention will become apparent tothose skilled in the art upon reading this description in conjunctionwith the accompanying drawings, in which like reference numerals havebeen used to designate like or analogous elements, and in which:

FIG. 1 is a block diagram illustrating an exemplary hardware deviceincluded in and/or otherwise providing an execution environment in whichthe subject matter may be implemented;

FIG. 2a is a flow diagram illustrating a method for disabling anoperative coupling to a network according to an aspect of the subjectmatter described herein;

FIG. 2b is a flow diagram illustrating a method for enabling anoperative coupling to a network according to an aspect of the subjectmatter described herein;

FIG. 3a is a block a diagram illustrating an arrangement of componentsfor disabling an operative coupling to a network according to anotheraspect of the subject matter described herein;

FIG. 3b is a block a diagram illustrating an arrangement of componentsfor enabling an operative coupling to a network according to anotheraspect of the subject matter described herein;

FIG. 4 is a block diagram illustrating an arrangement of components fordisabling an operative coupling to a network according to another aspectof the subject matter described herein and illustrating an arrangementof components for enabling an operative coupling to a network accordingto another aspect of the subject matter described herein;

FIG. 5 is a block diagram illustrating an arrangement of components fordisabling an operative coupling to a network according to another aspectof the subject matter described herein;

FIG. 6 is block a diagram illustrating an arrangement of components forenabling an operative coupling to a network according to another aspectof the subject matter described herein; and

FIG. 7 is a network diagram illustrating an exemplary system fordisabling an operative coupling to a network according to an aspect ofthe subject matter described herein and illustrating an exemplary systemfor enabling an operative coupling to a network according to anotheraspect of the subject matter described herein.

DETAILED DESCRIPTION

One or more aspects of the disclosure are described with reference tothe drawings, wherein like reference numerals are generally utilized torefer to like elements throughout, and wherein the various structuresare not necessarily drawn to scale. In the following description, forpurposes of explanation, numerous specific details are set forth inorder to provide a thorough understanding of one or more aspects of thedisclosure. It may be evident, however, to one skilled in the art thatone or more aspects of the disclosure may be practiced with a lesserdegree of these specific details. In other instances, well-knownstructures and devices are shown in block diagram form in order tofacilitate describing one or more aspects of the disclosure.

An exemplary device included in an execution environment that may beconfigured according to the subject matter is illustrated in FIG. 1. Anexecution environment includes an arrangement of hardware and,optionally, software that may be further configured to include anarrangement of components for performing a method of the subject matterdescribed herein.

An execution environment includes and/or is otherwise provided by one ormore devices. An execution environment may include a virtual executionenvironment including software components operating in a host executionenvironment. Exemplary devices included in or otherwise providingsuitable execution environments for configuring according to the subjectmatter include routers, switches, hubs, gateways, bridges, modems (e.g.DSL and/or cable), personal computers, notebook computers, tabletcomputers, servers, hand-held and other mobile devices, multiprocessordevices, distributed devices, consumer electronic devices, and/ornetwork-enabled devices. Those skilled in the art will understand thatthe components illustrated in FIG. 1 are exemplary and may vary byparticular execution environment

FIG. 1 illustrates hardware device 100 included in execution environment102. FIG. 1 illustrates execution environment 102 includesinstruction-processing unit (IPU) 104, such as one or moremicroprocessors; physical processor memory 106 including storagelocations identified by addresses in a physical memory address space ofIPU 104; persistent secondary storage 108, such as one or more harddrives and/or flash storage media; input device adapter 110, such as akey or keypad hardware, a keyboard adapter, and/or a mouse adapter;output device adapter 112, such as a display or audio adapter forpresenting information to a user; a network interface component,illustrated by network interface adapter 114, for communicating via anetwork such as a LAN and/or WAN; and a communication mechanism thatcouples elements 104-114, illustrated as bus 116. Elements 104-114 maybe operatively coupled by various means. Bus 116 may comprise any typeof bus architecture, including a memory bus, a peripheral bus, a localbus, and/or a switching fabric.

IPU 104 is an instruction execution machine, apparatus, or device.Exemplary IPUs include one or more microprocessors, digital signalprocessors (DSP), graphics processing units, application-specificintegrated circuits (ASIC), and/or field programmable gate arrays(FPGA). In the description of the subject matter herein, the terms “IPU”and “processor” are used interchangeably. IPU 104 may access machinecode instructions and data via one or more memory address spaces inaddition to the physical memory address space. A memory address spaceincludes addresses identifying locations in a processor memory. Theaddresses in a memory address space define a processor memory. IPU 104may have more than one processor memory. Thus, IPU 104 may have morethan one memory address space. IPU 104 may access a location in aprocessor memory by processing an address identifying the location. Theprocessed address may be in an operand of a machine code instructionand/or may be identified in a register or other portion of IPU 104.

FIG. 1 illustrates virtual processor memory 118 spanning at least partof physical processor memory 106 and at least part of persistentsecondary storage 108. Virtual memory addresses in a memory addressspace may be mapped to physical memory addresses identifying locationsin physical processor memory 106. An address space for identifyinglocations in a virtual processor memory is referred to as a virtualmemory address space; its addresses are referred to as virtual memoryaddresses; and its processor memory is known as a virtual processormemory or virtual memory. The term “processor memory” may refer tophysical processor memory 106 and/or virtual processor memory 118depending on the context in which the term is used.

Various types of memory technologies may be included in physicalprocessor memory 106. Exemplary memory technologies include staticrandom access memory (SRAM) and/or dynamic RAM (DRAM) including variantssuch as dual data rate synchronous DRAM (DDR SDRAM), error correctingcode synchronous DRAM (ECC SDRAM), and/or RAMBUS DRAM (RDRAM). Physicalprocessor memory 106 may include volatile memory as illustrated in theprevious sentence and/or may include nonvolatile memory such asnonvolatile flash RAM (NVRAM) and/or ROM.

Persistent secondary storage 108 may include one or more flash memorystorage devices, one or more hard disk drives, one more magnetic diskdrives, and/or one or more optical disk drives. Persistent secondarystorage may include removable media. The drives and their associatedcomputer-readable storage media provide volatile and/or nonvolatilestorage for computer readable instructions, data structures, programcomponents, and other data for execution environment 102.

Execution environment 102 may include software components stored inpersistent secondary storage 108, in remote storage accessible via anetwork, and/or in a processor memory. FIG. 1 illustrates executionenvironment 102 including operating system 120, one or more applications122, other program code and/or data components illustrated by otherlibraries and subsystems 124. In an aspect, some or all softwarecomponents may be stored in locations accessed by IPU 104 in a sharedmemory address space shared by the software components. The softwarecomponents accessed via the shared memory address space are stored in ashared processor memory defined by the shared memory address space. Inanother aspect, a first software component may be stored in one or morelocations accessed by IPU 104 in a first address space and a secondsoftware component may be stored in one or more locations accessed byIPU 104 in a second address space. The first software component isstored in a first processor memory defined by the first address spaceand the second software component is stored in a second processor memorydefined by the second address space.

Software components typically include instructions executed by IPU 104in a context referred to as a “process”. A process may include one ormore “threads”. A thread includes a sequence of instructions executed byIPU 104 in a thread context. The terms “thread” and “process” may beused interchangeably herein when a process includes only one thread.

Execution environment 102 may receive user-provided information via oneor more input devices illustrated by input device 128. Input device 128provides input information to other components in execution environment102 via input device adapter 110. Execution environment 102 may includean input device adapter for a keyboard, a touch screen, a microphone, ajoystick, a television receiver, a video camera, a still camera, adocument scanner, a fax, a phone, a modem, a network interface adapter,and/or a pointing device, to name a few exemplary input devices.

Input device 128 included in execution environment 102 may be includedin device 100 as FIG. 1 illustrates or may be external (not shown) todevice 100. Execution environment 102 may include one or more internaland/or external input devices. External input devices may be connectedto device 100 via corresponding communication interfaces such a serialport, a parallel port, and/or a universal serial bus (USB) port. Inputdevice adapter 110 receives input and provides a representation to bus116 to be received by IPU 104, physical processor memory 106, and/orother components included in execution environment 102.

Output device 130 in FIG. 1 exemplifies one or more output devices thatmay be included in and/or may be external to and operatively coupled todevice 100. For example, output device 130 is illustrated connected tobus 116 via output device adapter 112. Output device 130 may be adisplay device. Exemplary display devices include liquid crystaldisplays (LCDs), light emitting diode (LED) displays, and projectors.Output device 130 presents output of execution environment 102 to one ormore users. In some embodiments, an input device may also include anoutput device. Examples include a phone, a joystick, and/or a touchscreen. In addition to various types of display devices, exemplaryoutput devices include printers, speakers, tactile output devices suchas motion producing devices, and other output devices producing sensoryinformation detectable by a user.

A device included in or otherwise providing an execution environment mayoperate in a networked environment communicating with one or moredevices via one or more network interface components. The termscommunication interface and network interface component are usedinterchangeably. FIG. 1 illustrates network interface adapter (NIA) 114as a network interface component included in execution environment 102to operatively couple device 100 to a network. A network interfacecomponent includes a network interface hardware (NIH) component andoptionally a software component. The terms network node and node in thisdocument both refer to a device having a network interface component foroperatively coupling the device to a network.

Exemplary network interface components include network interfacecontrollers, network interface cards, network interface adapters, andline cards. A network interface component may interoperate with a wirednetwork and/or a wireless network. Exemplary wireless networks include aBLUETOOTH network, a wireless 802.11 network, and/or a wirelesstelephony network (e.g., a cellular, PCS, CDMA, and/or GSM network).Exemplary network interface components for wired networks includeEthernet adapters, Token-ring adapters, FDDI adapters, asynchronoustransfer mode (ATM) adapters, and modems of various types. Exemplarynetworks also include intranets and internets such as the Internet.Exemplary wired and/or wireless networks include various types of LANs,WANs, and/or personal area networks (PANs).

FIG. 2a is a flow diagram illustrating a method for disabling anoperative coupling to a network according to an exemplary aspect of thesubject matter described herein. FIG. 2b is a flow diagram illustratinga method for enabling an operative coupling to a network according to anexemplary aspect of the subject matter described herein. FIG. 3a is ablock diagram illustrating an arrangement of components for performingthe method illustrated in FIG. 2a according to another exemplary aspectof the subject matter described herein. FIG. 3b is a block diagramillustrating an arrangement of components for performing the methodillustrated in FIG. 2b according to still another exemplary aspect ofthe subject matter described herein. In various aspects, a system may beconfigured to perform one or both of the methods illustrated in FIG. 2aand FIG. 2b . For ease of illustration, FIG. 4 illustrates an executionenvironment that includes adaptations of both arrangements in FIG. 3aand FIG. 3 b.

A system for disabling an operative coupling to a network, performingthe method illustrated in FIG. 2a , includes an execution environment,such as execution environment 102 in FIG. 1, including an instructionprocessing unit, such as processor 104, configured to process aninstruction included in at least one of a forwarding component 350, aforwarding monitor component 352, and a network interface directorcomponent 354 illustrated in FIG. 3 a.

A system for enabling an operative coupling to a network, performing themethod illustrated in FIG. 2b , includes an execution environment, suchas execution environment 102 in FIG. 1, including an instructionprocessing unit, such as processor 104, configured to process aninstruction included in at least one of an interface activity monitorcomponent 360, a network interface state component 362, an interfaceactivator component 364, and a forwarding component 350′ illustrated inFIG. 3 b.

Components illustrated in FIG. 3a may be adapted for performing themethod illustrated in FIG. 2a in a number of varying executionenvironments. FIG. 4 and FIG. 5 illustrate block diagrams includingadaptations of the arrangement of components in FIG. 3a and/or analogsof the components in FIG. 3a adapted for operation, respectively, inexecution environment 402 and in execution environment 502 includingand/or otherwise provided by one or more nodes. The method depicted inFIG. 2a may be carried out by some or all of the exemplary componentsand/or their analogs.

Components illustrated in FIG. 3b may be adapted for performing themethod illustrated in FIG. 2b in a number of varying executionenvironments. FIG. 4 and FIG. 6 illustrate block diagrams includingadaptations of the arrangement of components in FIG. 3b and/or analogsof the components of FIG. 3b adapted for operation, respectively, inexecution environment 402 and in execution environment 602 includingand/or otherwise provided by one or more nodes. The method depicted inFIG. 2b may be carried out by some or all of the exemplary componentsand/or their analogs.

FIG. 1 illustrates key components of an exemplary device that may atleast partially provide and/or otherwise be included in an executionenvironment, such as execution environment 402 in FIG. 4, executionenvironment 502 in FIG. 5, and execution environment 602 in FIG. 6. Thecomponents illustrated in FIG. 4, FIG. 5, and FIG. 6 may be included inor otherwise combined with the components of FIG. 1 to create a varietyof arrangements of components according to the subject matter describedherein.

FIG. 7 illustrates in-between node 702 as an exemplary network relay.In-between node 702 includes a device included in and/or otherwiseadapted for providing an execution environment such as illustrated inFIG. 4, FIG. 5, and/or FIG. 6. In-between node 702 in FIG. 7 includes afirst network interface hardware component and a second networkinterface hardware component. In-between node 702 may be operativelycoupled to a first network, illustrated as inside network 704.1 via thefirst network interface hardware component when a first operativecoupling of the first network interface hardware component to the firstnetwork is enabled, and may be operatively coupled to a second network,illustrated as outside network 704.2 when a second operative coupling ofthe second network interface hardware component to the second network isenabled. When both operative couplings are enabled, in-between node 702may forward data exchanged between a first node, illustrated by insidenode 706.1 in inside network 704.1, and a second node, illustrated byoutside node 706.2 in outside network 704.2. Either or both insidenetwork 704.1 and outside network 704.2 may include and/or may beincluded in a local area network (LAN), an intranet, at least a portionof the Internet and/or other wide area network (WAN).

FIG. 4 illustrates execution environment 402 that may include and/or maybe included in a network node such as in-between node 702 in FIG. 7. InFIG. 4 execution environment 402 includes first network interfaceadapter (NIA) component 404.1, as a network interface component,including a first network interface hardware (NIH) component 406.1 foroperatively coupling in-between node 702 to inside network 704.1.Execution environment 402 also includes second NIA component 404.2including second NIH component 406.2 for operatively coupling in-betweennode 702 to outside network 704.2. When in-between node 702 isoperatively coupled to inside network 704.1 via first NIA component404.1, first NIA component 404.1 may receive data transmitted by insidenode 706.1 via inside network 704.1 and/or may send data to inside node706.1 via inside network 704.1. Execution environment 402 may optionallyinclude one or more other NIA components illustrated by third NIAcomponent 404.3 through an Nth NIA component 404.n includingcorresponding NIH components, illustrated by third NIH component 406.3through N^(th) NIH component 406.n.

Exemplary network interface components may include and/or may beincluded in network interface controllers, network interface cards,network interface adapters, line cards, modem ports, or other types ofnetwork physical layer components. FIG. 4 illustrates first NIAcomponent 404.1 includes first NIH component 406.1 physically couplingin-between node 702 in FIG. 7 to a physical communications medium ininside network 704.1. A physical communications medium may be wired orwireless. In FIG. 4, second NIA component 404.2 includes second NIHcomponent 406.2 physically coupling in-between node 702 to a physicalcommunication medium in outside network 704.2. The communication mediaof inside network 704.1 and outside network 704.2 may be the same ordifferent types of communication media.

NIA components 404 in FIG. 4 include at least a portion of a link layer408 for communicating over respective physical communications media. InFIG. 4, link layer 408 is shown as the same for first NIA component404.1 and second NIA component 404.2. In an aspect, link layer 408 mayinclude a first link layer component for communicating over a physicalcommunications medium in inside network 704.1 via first NIH component406.1 in first NIA component 404.1, and may further include a secondlink layer component for communicating over a second communicationsmedium of outside network 704.2 via second NIH component 406.2 in secondNIA component 404.2. The first and second link layer components maysupport the same or different link layer protocols.

FIG. 4 illustrates network layer 410 corresponding to layer 3 of theopen systems interconnection reference (OSI) model. The InternetProtocol (IP) is an exemplary layer 3 or network layer protocol. FIG. 4includes routing layer 412 for identifying a network interface componentto transmit data received from another network interface component inexecution environment 402. Data communicated between inside node 706.1and outside node 706.2 may be received by one of first NIA component404.1 and second NIA component 404.2 via one of first NIH component406.1 and second NIH component 406.2, respectively. Link layer data isdetected by link layer 408 according to a link layer protocol supported.For example, Ethernet frames may be detected when received via a CAT 6Ethernet cable. Link layer data is provided to network layer 410according to the specification of a particular network layer. Forexample, one or more IP packets may be detected in one or more receivedEthernet frames. Routing layer 412 may determine a network interfacecomponent for transmitting the data to communicate the received databetween networks 704 operatively coupled by in-between node 702.

FIG. 5 illustrates another exemplary execution environment 502 that mayinclude and/or otherwise be provided by in-between node 702 and/or ananalog. In FIG. 5 execution environment 502 includes first line card504.1 as a network interface component. First line card 504.1 includesfirst NIH component 506.1 for physically and operatively couplingin-between node 702 to inside network 704.1. Execution environment 502also includes second NIH component 506.2 in second line card 504.2 forphysically and operatively coupling in-between node 702 to outsidenetwork 704.2.

Data communicated between inside node 706.1 and outside node 706.2 maybe received by one of first line card 504.1 and second line card 504.2in a manner analogous to that described above with respect to NIAcomponents 404 in FIG. 4. At least a portion of the data may becommunicated to general processing unit (GPU) 508 via internalcommunications medium 514 for determining a line card for sending atleast a portion of the received data for forwarding to the receivingnode. For example, first NIH component 506.1 in first line card 504.1may receive data transmitted over inside network 704.1 to outside node706.2 from inside node 706.1. GPU 508 may interoperate with routingcomponent 510 to identify second line card 504.2 for transmitting thedata received from inside node 706.1 to outside node 706.2 via outsidenetwork 704.2. GPU 508 may further interoperate with forwardingcomponent 550 to configure internal communications medium 514 fordelivering the received data from first line card 504.1 to second linecard 504.2 for transmitting by second NIH component 506.2. Internalcommunications medium 514 may include any suitable communications mediumincluding a bus, a switch interconnect unit, and other media describedwith respect to bus 116 in FIG. 1

In FIG. 5 GPU 508 may include routing component 510 or they may beseparate components. In an aspect, routing component 510 may manage oneor more policies and/or may manage one or more routing tables. A routingtable may be generated and updated based on one or more metricsassociated with network paths (i.e. routes) in a network. Exemplarymetrics include metrics based on network path length, dropped packets,delay, and bandwidth. A metric may consist of any value that may be usedto determine whether a route in a network should perform better thananother route in the network according to some requirement and/orcriterion. For example, a routing algorithm may use a metric fordetermining whether a route in a network has fewer hops than anotherroute in the network. A number of routing protocols exist for providinga metric associated with identifying a network interface component forforwarding received data.

Alternatively or additionally, various protocols are suitable forproviding information for policy evaluation and/or for identifying arouting metric for generating and updating a routing table. For example,link state protocols such as the Open Shortest Path First (OSPF),distance vector protocols such as the Routing Information Protocol(RIP), path vector protocols such as the Border Gateway Protocol (BGP),and label switching protocols such as Multi-protocol Label Switching(MPLS) may be used. Both OSPF and RIP message formats support a messagearea for one or more metrics. In an aspect, in-between node 702 mayexchange routing metric information with other network relays. Theexchanged information allows in-between node 702 to identify a portionof a network path to a destination host for communicating data betweeninside network 704.1 and outside network 704.2. In an aspect, BGP allowsin-between node 702 to advertise paths to reach a destination in anoperatively coupled network. In-between node 702, having suchinformation, may apply one or more policies associated with one or morenodes included in the portion of the network path.

A policy for routing and/or otherwise forwarding information received byin-between node 702 may be based on the size of the packet, the protocolof the payload, and/or some other attribute. It may also be based on acombination of attributes. In MPLS, labels (and thus routes) aredetermined by a packet's forwarding equivalence class (FEC). An FEC maybe defined based on a route associated with a node in a network path toa destination in inside network 704.1 and/or a destination in outsidenetwork 704.2.

Routing component 510 may evaluate a policy and/or maintain a routingtable. A routing table may be maintained based on a routing metric. Whenrouting component 510 is configured for evaluating a policy, the policymay be based on routing information provided by GPU 508.

According to an aspect, forwarding data may include identifying anetwork interface component for forwarding by performing a routingpolicy operation on a routing policy based on a determined routingmetric. For example, forwarding component 550 may be configured forperforming a routing policy operation on a routing policy based on adetermined routing metric for identifying a line card 504. As discussedabove, the routing policy operation on a routing policy may include anevaluation of the routing policy. As such, forwarding component 550 maybe configured for identifying the line card for transmitting the databased on an evaluation of a policy based on the routing metric.Forwarding component 550 may retrieve a routing policy from routingcomponent 510 for evaluation. The policy may be retrieved based on anyinformation in data for forwarding such as a packet, a network path forcommunicating data, a network node included in the network path forcommunicating data, geospatial information, a routing indicator, andother information as required for forwarding data between inside node706.1 and outside node 706.2 by in-between node 702.

In another aspect, identifying forwarding data may include performing arouting table operation on a routing table. For example, forwardingcomponent 550 may be configured for performing a routing table operationon a routing table for identifying a line card 504. As discussed above,a routing table operation on a routing table may include a routing tablelookup. Forwarding component 550 may identify a line card 504 fortransmitting received data over a destination network path by performinga lookup operation on routing table or other lookup table. For example,forwarding component 550 may provide packet information such as some orall of a network address of the destination host to the routingcomponent 510 for performing a lookup in a routing table maintained byrouting component 510. The lookup results may be returned to theforwarding component 550.

Based on the results of the policy evaluation and/or the results of thelookup operation, forwarding component 550 identifies a line card 504 ofin-between node 702 for transmitting from one of inside network 704.1and outside network 704.2 to the other.

FIG. 6 illustrates still another exemplary execution environment 602that may include and/or otherwise be provided by in-between node 702 andor an analog. In FIG. 6 execution environment 602 includes first NIHcomponent 606.1, in first line card 604.1, for physically andoperatively coupling in-between node 702 to inside network 704.1.Execution environment 602 also includes second NIH component 606.2, insecond line card 604.2, for physically and operatively couplingin-between node 702 to outside network 704.2.

Execution environment 602 may be an adaption and/or analog of executionenvironment 502 and operate as described with additional componentsadding additional capabilities. According to an aspect illustrated inFIG. 6, in-between node 702 may include the additional componentsillustrated for enhancing its operation. Each line card or networkinterface component of in-between node 702 may include a routing agent(RA) component. FIG. 6 illustrates first RA component 608.1 included infirst line card 604.1, and second RA component 608.2 in second line card604.2 A RA component may be included for distributing the operation ofrouting component 610, offloading the work of the routing component 610and reducing traffic flow between line cards 604 and GPU 612. A RAcomponent 608 may operate as a cache maintaining a portion of a routingtable maintained by routing component 610 and performing lookups locallyin the including line card 604.

In FIG. 6, forwarding component 650 may configure switch interconnectunit (SIU) 616 to provide a communication channel from first line card604.1 to second line card 604.2 and vice versa, as needed. Each linecard 604 may include a switch interface (SI) component 618 for writingdata to a channel configured in SIU 616 and/or for reading data from achannel. A forwarding agent (FA) component 650.1, such as first FAcomponent 650.1, may identify the destination network interfacecomponent, such as second line card 604.2, for transmitting datareceived in a communication including inside node 706.1 and outside node706.2. First SI component 618.1 of first line card 604.1 may setup achannel for communicating the data to second SI component 618.2 ofsecond line card 604.2. Second SI component 618.2 may read the data andprovide the data to second NIH component 606.2 for transmitting. An FAcomponent optionally interoperating with an associated RA component maymodify the transmission of the data based on a policy and/or routingtable information stored in an including line card 604. For example,second FA component 650.2 interoperating with second RA component 608.2may alter a network path including a next hop to be traversed byreceived data to provide the data to second NIH component 604.2 fortransmitting. Second FA component 650.2 may identify yet another networkinterface component for transmitting the data or may interoperate withthe forwarding component 650 to identify another network interfacecomponent and/or confirm the network interface component identified byfirst FA component 650.1.

Each line card 606 in execution environment 602 including first linecard 606.1 and second line card 606.2 may include a forwarding agent(FA) component 650.2. A FA component may be provided for interoperatingwith an associated RA component 608 (described above) analogous to themanner that forwarding component 650 interoperates with the routingcomponent 610 for identifying a network interface component fortransmitting received data from one network to another. A FA componentprovides distributed operation of forwarding component 650 by offloadingthe work of forwarding component 650 and reducing traffic flow betweenline cards 604 and GPU 612. A FA component may operate, as indicatedabove, with an RA component 608 for evaluating a policy and/orperforming a routing table lookup in a line card 604 of received data.If a line card 604 for transmitting received data is identified, GPU 612and its components need not be involved in identifying the line card604. A line card 604, in such cases, may play the role of a generalprocessing unit hosting its own forwarding agent (FA) and routingcomponent agent (RA). In FIG. 6, first FA component 650.1 is illustratedin first line card 604.1 and second FA component 650.2 is illustrated insecond line card 604.2.

A network interface component in in-between node 702 may receive datacommunicated from a sending node 706 via a network path included in anetwork 704 operatively coupled to in-between node 702 via a networkinterface hardware component. One or more network paths may exist fortransmitting the data. The sending node 706 may be and/or otherwise mayinclude a desktop PC, a notebook, a server, or a handheld computingdevice serving as a gateway, bridge, or other network relay device.In-between node 702 may be configured for receiving the data from asending node 706 and for transmitting the received data to a receivingnode 706 at any protocol layer. For example, in-between node 702 mayreceive and transmit a data packet at a link layer as performed by anEthernet bridge and a multiple protocol labeling switch (MPLS). Further,in-between node 702 may receive and transmit a data packet at a networklayer as performed by an Internet protocol (IP) router. Further,in-between node 702 may receive and transmit a data packet at atransport layer as performed by a proxy for forwarding a packet from afirst TCP connection to a second TCP connection. Further, in-betweennode 702 may receive and transmit a data packet at a session layer asperformed by a hypertext transmission protocol (HTTP) proxy forforwarding an HTTP message associated with session information from afirst HTTP connection to a second HTTP connection. Further, in-betweennode 702 may receive and transmit a data packet at a presentation layer,an application layer, a physical layer as performed by a repeater,across protocol layers as performed by a protocol gateway, and/or acrossan intervening network as performed by a protocol tunneling service.

As described above, in-between node 702 may be configured for receivingand for transmitting data at any protocol layer. Accordingly, data maybe included in and/or may include data formatted according to a physicallayer protocol, a link layer protocol, a network layer protocol, atransport layer protocol, a session layer protocol, a presentation layerprotocol, and/or an application layer protocol.

With reference to FIG. 2, block 250 illustrates the method includesforwarding first data received for forwarding between a first node in afirst network and a second node in a second network by a network relayvia a first operative coupling to the first network of a first networkinterface hardware component in the network relay and via a secondoperative coupling to the second network of a second network interfacehardware component in the network relay. Accordingly, a system fordisabling an operative coupling to a network includes means forforwarding first data received for forwarding between a first node in afirst network and a second node in a second network by a network relayvia a first operative coupling to the first network of a first networkinterface hardware component in the network relay and via a secondoperative coupling to the second network of a second network interfacehardware component in the network relay. For example, as illustrated inFIG. 3a , forwarding component 350 is configured for forwarding firstdata received for forwarding between a first node in a first network anda second node in a second network by a network relay via a firstoperative coupling to the first network of a first network interfacehardware component in the network relay and via a second operativecoupling to the second network of a second network interface hardwarecomponent in the network relay.

FIG. 4 and FIG. 5 illustrate forwarding component 450 and forwardingcomponent 550 as adaptations and/or analogs of forwarding component 350in FIG. 3a . One or more forwarding components 450 operate in executionenvironment 402, and one or more forwarding components 550 operate inexecution environment 502.

In various adaptations, in-between node 702 in FIG. 7 may include and/ormay be included in a modem (e.g. DSL and/or cable), a gateway, a router,a switch, a hub, a bridge, a repeater, a firewall, a network addresstranslation (NAT) service, a virtual private network (VPN) concentrator,a demilitarized zone (DMZ) gateway, a desktop computer, a server, amobile computer, and/or a device included in a network tunnel. Forexample, the arrangement of components in FIG. 4 may operate as aninternet router at a network layer and as a bridge or switch at a linklayer. The arrangement in FIG. 5 and/or the arrangement in FIG. 6 mayoperate as a router, a link layer switch, and/or a bridge in variousaspects.

A first network and/or a second network operatively coupled to a networkrelay may include one or more local area networks (LANs), wide areanetworks (WANs), virtual private networks (VPNs), point-to-point links,internets, voice communications networks, and/or video communicationsnetworks. A first network and/or a second network operatively coupled toa network relay may include a wireless network and/or a wired network.

In FIG. 4 forwarding component 450 may receive and/or otherwise detectdata for forwarding between inside node 706.1 and outside node 706.2.The data may be received for routing by routing layer 412. Either node706 may be a sender of data and/or a receiver of data in acommunication. In an aspect, forwarding component 450 may receive datafor forwarding between the nodes 706 by receiving data from insidenetwork 704.1 and/or outside network 704.2. Not all data received by anetwork relay device may be data for forwarding. Received data meeting aforwarding condition may be identified as data for forwarding.

Data for forwarding may be detected and/or otherwise identified byreceiving the data via an operative coupling of a network interfacehardware component to a network. A determination may be made whether aforwarding condition for the received data is met. If the forwardingcondition is determined to be met, the received data may be detected asdata for forwarding, in response to the determination.

In one aspect, a forwarding condition may include and/or otherwiseidentify a forwarding criterion. Determining that the forward conditionis met may include determining whether one or more attributes of thereceived data match the forwarding criterion. A forwarding criterion maybe specified for matching one or more attributes of received data thatmay be based on, for example, the first network, the second network, thefirst node, the second node, a protocol for at least one of sending andreceiving the received data, at least one of an application sending thereceived data and an application identified as a recipient of thereceived data, a user identified with the received data, a node in anetwork path in a route in communicating the received data, a type of atleast a portion of the received data, a pattern included in the receiveddata, a value included in the received data, a geospatial location of anode included in communicating the received data, a sender of thereceived data, a receiver of the received data, and/or a relationshipbetween a sender of the received data and a receiver of the receiveddata.

In an aspect, a forwarding condition may specify that all datacommunicated between inside network 704.1 and outside network 704.2meets the forwarding condition. In another example, a specifiedforwarding condition may be met for data received from a particularnetwork interface component and not met for data received from anothernetwork interface component. For example, data received via first linecard 504.1 may meet a forwarding condition while data received viasecond line card 504.2 may not meet the forwarding condition.

In still another example, a forwarding condition may be specified thatis met for particular nodes, particular applications, particularnetworks, and particular data. For example, a forwarding condition maybe met for data communicated by inside node 706.1 with any node inoutside network 704.2 where inside node 706.1 initiated thecommunication. Data received in communication(s) between other nodes ininside network 704.1 and corresponding nodes in outside network 704.2may not meet the forwarding condition.

A forwarding condition may be met for data communicated according to aparticular protocol, such as HTTP and/or simple mail transfer protocol(SMTP). A forwarding condition that is met for certain protocols and/orTCP/UDP port numbers exemplifies a forwarding condition that mayidentify data for forwarding by one or more particular applicationsand/or types of applications.

Various forwarding conditions may be specified in various adaptations ofthe arrangement in FIG. 3. For example, a forwarding condition may bespecified that is based on a protocol for communicating received data, anetwork address or a portion of a network address, a port number, anattribute and/or content of a payload portion of a packet, at leastportion of a header of a packet, at least a portion of a footer of apacket, at least a portion of a name in a network naming domain, ageospatial location of a node in a path included in at least a portionof the first network and the second network, at least one of a formatand vocabulary of data in a communication as specified by a particularprotocol, a user, a group, a security attribute, a distance between anode in the first network and a node in the second network included in acommunication (e.g., a geographic distance, a distance in network pathhops, a time distance, and/or a relationship distance), an owner of anode in a network path, an administrative authority of a node in anetwork path, a measure of trust associated with a node in a path in acommunication, a cost associated with a communication, an attribute of alegal agreement, and a quality of service attribute.

In an aspect, forwarding component 450 may receive data in an IP packetfor routing. The IP packet includes network address information of thenodes 706 in the sender and receiver locations in each packet.Forwarding component 450 may detect full network addresses and partialnetwork addresses, known as scoped network address in IP networks, asidentifiers of the nodes 706. Routing layer component 412 may providesome or all of the network address information to forwarding component450. Based on the network addresses and port numbers forwardingcomponent 450, in the aspect, may determine the packet is routablebetween a node in inside network 704.1 and outside network 704.2 viafirst NIA component 404.1 and second NIA component 404.2, respectively.In another aspect, in-between node 702 may be an application relaydevice. Forwarding component 450 may forward data received forforwarding based on a port number of a sending and receiving applicationand/or on information accessible in an application protocol according towhich the data is transmitted via inside network 704.1 and/or outsidenetwork 704.2.

In another aspect, forwarding component 450 may forward data receivedfor forwarding between inside network 704.1 and outside network 704.2without identifying any particular node in inside network 704.1 and/orany particular node in outside network 704.2. For example, in-betweennode 702 may host an asynchronous transfer mode (ATM) switch. Forwardingcomponent 350 may be adapted to forward data in an ATM cell based on anidentified virtual circuit.

In another aspect, forwarding data may include receiving data accordingto a first protocol and transmitting some or all of the data accordingto a second protocol. For example, forwarding component 450 may beadapted to operate as a gateway between inside network 704.1 and outsidenetwork 704.2 mapping communications via a first network protocolsupported by inside network 704.1 to a second protocol supported byoutside network 704.2. The two protocols may include different networkaddress spaces. Forwarding component 450 may map network addressesand/or portions of network addresses from a first address space of thefirst protocol to a second address space of the second protocol and viceversa in forwarding data between inside network 704.1 and outsidenetwork 704.2.

In various aspects, forwarding data may include receiving and sendingthe data via at least one of a link layer protocol, a network layerprotocol, a transport layer protocol, a session layer protocol, apresentation layer protocol, and/or an application layer protocol. In anadaption, at least a portion of a forwarding component may be includedin one or more NIA components 404, and/or in link layer 408. Asdescribed above, alternative arrangements of components illustrated inFIG. 3 may forward data for forwarding between inside network 704.1 andoutside network 704.2 at other layers of a network stack, such as atransport layer. Adaptations and/or analogs of forwarding component 350may operate at least partially in any layer of a network stack providedby various adaptations and/or analogs of in-between node 702.

Forwarding data may include forwarding data in a connection-orientedcommunication and/or in a connectionless communication. Exemplaryprotocols operating at various layers of the OSI model supportingconnection-oriented and/or connectionless communication includeEthernet, token-ring, ATM, FDDI, TCP, IP, NetBIOS, IPX, frame-relay,FTP, UDP, and HTTP. In an aspect, forwarding data may include forwardingdata received by a publish-subscribe service. For example, in-betweennode 702 may host a presence service. An adaption of forwardingcomponent 350 in FIG. 3 may receive a publish message from inside node706.1 and send or forward data in the publish message in a notificationmessage to outside node 706.2 and/or outside node 706.2 may send apublish message and inside node 706.1 may receive a notificationincluding forwarded information.

In an aspect, a forwarding component may forward data sentasynchronously from inside node 706.1 to outside node 706.2 and/or viceversa. Alternatively or additionally, the forwarding component mayforward data included in a request-response communication between insidenode 706.1 and outside node 706.2.

FIG. 5 illustrates forwarding component 550 including GPU component 508,and routing component 510. Forwarding component 550 may control routingand forwarding of data between line cards 504 in execution environment502. As with forwarding component 450, forwarding component 550 may beconfigured, in various aspects and adaptations, to forward data betweena node in inside network 704.1 and a node in outside network 704.2 withvarying degrees of specificity based on one or more configuredforwarding conditions.

In one aspect, forwarding component 550 may include a counter to trackcommunication between inside network 704.1 and outside network 704.2with or without identifying nodes in various exchanges of data. Inanother aspect, forwarding component 550 may provide routing component510 with network addresses to maintain a table of active nodesexchanging data between inside network 704.1 and outside network 706.2.

Returning to FIG. 2, block 252 illustrates the method further includesdetermining a specified decoupling condition is met. Accordingly, asystem for disabling an operative coupling to a network includes meansfor determining a specified decoupling condition is met. For example, asillustrated in FIG. 3a , forwarding monitor component 352 is configuredfor determining a specified decoupling condition is met.

FIG. 4 and FIG. 5 illustrate forwarding monitor component 452 andforwarding monitor component 552 as adaptations and/or analogs offorwarding monitor component 352 in FIG. 3a . One or more forwardingmonitor components 452 operate in execution environment 402, and one ormore forwarding monitor components 552 operate in execution environment502

In an aspect, determining a decoupling condition is met may includedetecting an idle period during which no data for forwarding is receivedby a network relay via a first operative coupling to a first networkand/or via a second operative coupling to a second network. For example,various adaptations of forwarding monitor component 352 in FIG. 3, suchas forwarding monitor component 452 in FIG. 4, and forwarding monitorcomponent 552 in FIG. 5, may detect one or more idle periods of nocommunication between inside network 704.1 and outside network 704.2;between particular nodes, such as inside node 706.1 and outside node706.2; between particular applications identified, for example by portnumbers and/or information in an application protocol; and/or between anode in inside network 704.1 and a node in outside network 704.2.

Detecting an idle period may include configuring an idle indication tobe sent and/or generated. When the indication is received, the idleindication indicates an idle period during which no data for forwardinghas been received. The idle indication may be configured along withforwarding received data. The idle indication may be configured duringand/or in response to forwarding data between a first and second networkby a network relay operatively coupling the first network and the secondnetwork. A decoupling condition may be determined and/or otherwisedetected to be met, in response to receiving an idle indication for anidle period.

A time period corresponding to an idle period may be measured and/orotherwise detected by counting one or more events that occur in time.Configuring an idle indication to be received may include accessing avalue from an event counter. An event count may be accessed to, forexample, determine a current time as a start time for an idle periodand/or to reset an event counter to initialize a count of one or moreevents. An idle indication may be received and/or otherwise detected bydetermining that a value of an event counter meets a threshold conditionspecified for detecting an idle period. Any detectable event may becounted to detect and/or measure an idle time period. Exemplary eventsthat may be counted via accessing an event counter include, timerinterrupts, instructions executed by an IPU, IPU cycles, bytes receivedvia a network, bytes transmitted via a network, messages received,messages transmitted, and/or messages forwarded. A message may bedefined as a unit of data communicated via a network at a particularnetwork layer. An IP packet is message at the IP layer of a TCP/IPnetwork, for example.

In FIG. 4, forwarding monitor component 452 may include and/or otherwiseinteroperate with one or more timer components 414, directly and/orindirectly. Forwarding monitor component 452 may set a timer 414 afterand/or during forwarding of data between inside node 706.1 and outsidenode 706.2 via a NIA component 404. If the timer 414 expires beforeadditional data for forwarding is received via a NIA component 404,forwarding monitor component 452 may detect an idle period.

When data for forwarding is received, forwarding monitor component 452in FIG. 4 may reset a timer 414 for detecting an idle period. Theduration of the reset timer 414 may be set to a configured fixed valueand/or may vary according to a direction of transmission between theinside network 704.1 and the outside network 704.2, an identifier and/orother attribute of a sending node and/or a receiving node, and/or anyother attribute accessible within the execution environment ofin-between node 702, such as exemplary execution environment 402 in FIG.4 and execution environment 502 in FIG. 5. If no data for forwarding isreceived according to a forwarding condition, the timer 414 is notreset. Forwarding monitor component 452 may detect an expiration of thetimer indicating an idle period. In response to detecting the timerexpiration, forwarding monitor component 452 may determine that adecoupling condition is met.

In FIG. 5, first forwarding monitor 552.1 may be configured according toa forwarding condition to reset an event counter for detecting an idleperiod for data received via first NIH component 506.1 for relaying tosecond NIA component 504.2 to transmit to a node in outside network704.2. In the example, second forwarding monitor component 552.2 may beconfigured according to the forwarding condition to not reset an eventcounter for detecting an idle period for data received via second linecard 504.2 for relaying to first line card 504.1 to transmit to a nodein inside network 704.1. Data received via second NIH component 506.2may and/or may not be transmitted to a node in inside network 704.1 invarious adaptations and configurations of a network relay.

In yet another aspect, forwarding monitor component 452, in FIG. 4, maydetect one or more idle periods during which no data is received via anSMTP message between one or more mail clients in one or more nodes ininside network 704.1 and a mail server in outside network 704.2specified in a forwarding condition. In FIG. 5, first forwarding monitorcomponent 552.1 in first line card 504.1 may detect packets receivedfrom inside network 704.1 including a destination port number with avalue of “80” in a TCP header portion of the received data. A forwardingcondition specified for web browsers may be met based on identifyingport number “80” in the TCP header. First forwarding monitor component552.1 may start a timer (not shown) in response to receiving the dataincluding the TCP header from inside network 704.1. The data may berouted to second line card 504.2 for transmitting to a node, such asoutside node 706.2 in outside network 704.2 by second NIH component506.2.

In an aspect more than one timer and/or other event counter may beactive at the same time. In various aspects, a decoupling condition maybe met when particular timers and/or other event counters meetcorresponding threshold conditions and/or a decoupling condition may bemet when various combinations of event counters meet correspondingthreshold conditions. For example, first forwarding monitor component552.1 may be configured to detect a first idle period having a firstduration based on a first forwarding condition that matches datareceived by first NIH component 506.1 from inside network 704.1addressed to a node in outside network 704.2. Additionally, secondforwarding monitor component 552.2 may be configured to detect a secondidle period having a second duration based on a second forwardingcondition that matches data received by second NIH component 506.2 fromoutside network 704.2 addressed to a node in inside network 704.1. Inone aspect, a decoupling condition is determined to be met by theforwarding monitor components 552 when both the first and second idleperiods are detected. In another aspect, either forwarding monitorcomponent 552 may determine a decoupling condition is met in response todetecting either of the first idle period or the second idle period.

In an aspect, a forwarding condition and/or a decoupling condition maybe specified in one or more instructions in an adaption of forwardingmonitor component 352 in FIG. 3 and/or in another componentinteroperating with a forwarding monitor component. For example, one orboth forwarding monitor components 552 in FIG. 5 may include machinecode generated from source specifying part or all of a forwardingcondition and/or a decoupling condition in a programming language.

In addition to or instead of detecting an idle period, determining adecoupling condition is met may be determined by, for example, detectinga specified time, detecting an identified node is operatively coupled toat least one of the first network and the second network (e.g., such asnode infected with a virus), detecting an identified node is notoperatively coupled to at least one of first network and the secondnetwork, detecting that an identified application is not active in anode in at least one of the first network and the second network, and/ordetermining that data received for forwarding matches a specifieddecoupling matching criterion.

In various aspects, a decoupling condition may be based on an attributeof the first network, the second network, the first node, the secondnode, a protocol included in communicating data for forwarding, anapplication included in communicating data for forwarding, a userincluded in communicating data for forwarding, a node in a network pathin a route in communicating data for forwarding, a type of at least aportion of data received by a network relay, a pattern included in datareceived by a network relay, a value included in data received by anetwork relay, a geospatial location of a node included data received bya network relay, a sender of data received by a network relay, areceiver of data forwarded by a network relay, and/or a relationshipbetween nodes operatively coupled by a network relay.

In an aspect, one or both forwarding monitor components 552 maydetermine a decoupling condition is met in response to detecting oneand/or both nodes have ceased participation in a data exchange and/orare in the process of ending their participation. For example, firstforwarding monitor component 552.1 may detect an indication via firstNIH component 506.1 that inside node 706.1 has left the network. Insidenode 706.1 may include a network interface component operatively coupledto the same LAN as first line card 504.1, in an aspect. Inside node's706.1 network interface component may generate an error signal on theLAN. Inside node's 706.1 network interface component may send beaconframes before removing itself from the LAN.

In another example, inside node 706.1 may send a message to a dynamichost configuration protocol (DHCP) server to release its assignednetwork address. A WINDOWS® internet name server (WINS server) maydetermine that inside node 706.1 has left inside network 704.1. Invarious scenarios, such as the examples just described, in-between node702 may receive a notification via an included network interfacecomponent, such as first line card 504.1 in FIG. 5. First forwardingmonitor component 552.1 may detect the notification via interoperation,direct and/or indirect, with first line card 504.1. Alternatively oradditionally, first forwarding monitor component 552.1 and/or anothercomponent in execution environment 502 may send a message to one or moreof inside node 706.1, the DCHP server, the WINS server, and/or othernode that tracks the status of inside node 706.1 on inside network704.1. First forwarding monitor component 552.1 may detect whetherinside node 706.1 is operative in first network or not based on one ormore responses to one or more messages. One or both forwarding monitorcomponents 552 may determine a decoupling condition is met in responseto detecting inside node 706.1 and/or other nodes have left insidenetwork 704.1 and/or outside network 704.2 according to thespecification of the particular decoupling condition.

In another aspect, inside network 704.1 may include a plurality ofnetworks. In-between node 702 may include a plurality of networkinterface components, as illustrated by NIA components 404 in FIG. 4,operatively coupling in-between node 702. In-between node 702 mayinclude NIA components 404 operatively coupled to two or more networksincluded in inside network 704.1. In-between node 702 may determine adecoupling condition is met for communication between inside network704.1 and outside network 704.2 and continue to forward data betweenand/or among the multiple networks included in inside network 704.1.

In still another aspect, determining a decoupling condition is met maybe in response to receiving one or more messages indicating an end ofone or more communications. A message indicating the end of acommunication may be received, for example by any NIH component 506 inFIG. 5 from a node either or both of inside network 704.1 and outsidenetwork 704.2. For example, inside node 706.1 may send a message toin-between node 702 to block communication with outside node 706.2. Forexample, in-between node 702 may include and/or otherwise interoperatewith a firewall. A forwarding monitor component 552 may be invoked inresponse to the message to determine that a decoupling condition is met.The message may include no data for forwarding between the insidenetwork 704.1 and the outside network 704.2.

In still another aspect, inside and outside nodes 706 may communicatevia a TCP connection. Either or both inside node 706.1 and outside node706.1 may send a message to close and/or otherwise end the connection.Forwarding monitor component 452 in FIG. 4 may identify the messagebased on a decoupling criterion for matching TCP close indications. Themessage includes data to be forwarded between the inside node 706.1 andthe outside node 706.2. Forwarding component 450 forwards the data.

A decoupling condition may be met when a particular node in insidenetwork 704.1 and/or outside network 704.2 ends a communication and/orleaves a network. In another aspect, a decoupling condition may be metwhen all nodes in a specified group, that may be determined, based on aforwarding condition, have ended communication, and/or left a network. Adecoupling condition may be met when a communication ends that includessending data via a particular protocol, to and/or from a particularport, and/or based on various other detectable attributes of dataexchanged between a first network and the second network via a networkrelay.

In yet another aspect, determining a decoupling condition is met may bebased on a specified time. For example, a household and/or business mayconfigure a decoupling condition based on a time. In a small businesswith nodes in inside network 704.1, access to a second network may berestricted to times when a particular service operating in a node in thesecond network is known to be available. A decoupling condition may bemet at specified times on, for example week days, and may be configuredto be met at all times on weekends and holidays. A household with afirst network operating including a cable or DSL modem as a networkrelay for accessing the Internet may have a decoupling condition that ismet when members of the household are not present and/or asleep. Thismay be configured based on particular times and/or may be detected bysensors in exterior entrances of a home, light sensors, and the like. Afirst network interface hardware component remains active to allowcommunication between and/or among nodes in a first network that mayand/or may not have human users.

Returning to FIG. 2, block 254 illustrates the method yet furtherincludes, subsequent to forwarding the first data and in response todetermining the decoupling condition is met, disabling the secondoperative coupling while the first operative coupling remains enabledfor receiving second data for forwarding. Accordingly, a system fordisabling an operative coupling to a network includes means for,subsequent to forwarding the first data and in response to determiningthe decoupling condition is met, disabling the second operative couplingwhile the first operative coupling remains enabled for receiving seconddata for forwarding. For example, as illustrated in FIG. 3a , networkinterface director component 354 is configured for, subsequent toforwarding the first data and in response to determining the decouplingcondition is met, disabling the second operative coupling while thefirst operative coupling remains enabled for receiving second data forforwarding.

FIG. 4 and FIG. 5 illustrate network interface director component 454and network interface director component 554 as adaptations and/oranalogs of network interface director component 354 in FIG. 3a . One ormore network interface director components 454 operate in executionenvironment 402, and one or more network interface director components554 operate in execution environment 502

Various aspects and adaptations of network interface director component354 in FIG. 3, such as network interface director component 454 in FIG.4, and network interface director component 554 in FIG. 5, may disablean operative coupling between a network interface hardware component anda network in any manner. Communication between and/or among nodes 706 infirst network may continue. In contrast, firewalls block communicationreceived via a network interface hardware component that is operativelycoupled to a physical communications medium.

In an aspect, disabling an operative coupling of a network interfacehardware component to a network may include reducing power to thenetwork interface hardware component. In FIG. 4, network interfacedirector component 454 is included in link layer 408 and manages theoperative coupling between second NIH component 406.2 and outsidenetwork 704.2. Network interface director component 454 may optionallymanage the operative coupling between first NIH component 406.1 andinside network 704.1. Network interface director component 454 may beinstructed by forwarding monitor component 452 and/or otherwise detectthat a decoupling condition has been determined to be met. In response,network interface director component 454, in an aspect, may interoperatewith a power management component 416 in execution environment 402 insecond NIA component 404.2 and/or external to second NIA component 404.2to cut power off and/or otherwise reduce power to second NIH component406.2 included in second NIA component 404.2. Power is reduced to atleast a level where the second operative coupling between second NIHcomponent 406.2 and outside network 704.2 is disabled.

In an aspect, reducing power to a network interface hardware componentin a network interface component may include changing a power stateassociated with the second network interface hardware component to atleast one of an off state, a suspended state (i.e. sleep state), and ahibernate state.

In an aspect, network interface director component 454 in FIG. 4 may beoperatively coupled to a power switch for controlling an electricalcircuit providing power to second NIA component 404.2. In response todetermining a decoupling condition is met, forwarding monitor component452 may communicate, directly and/or indirectly, with network interfacedirector component 454. Network interface director component 454 may setthe switch on the circuit to cut off power to second NIH component 406.2via second NIA component 404.2 to disable the second operative couplingof second NIH component 406.2 to outside network 704.2.

In a further aspect, a suspended state may include providing sufficientpower to a network interface hardware component to access data in amemory component. The memory component may be included in a networkinterface component including the network interface hardware component.Network interface director component 554 in FIG. 5, may place secondline card 504.2 in a suspended or sleep state by reducing power providedto and/or drawn by second line card 504.2 to disable the operativecoupling of second NIH component 506.2 to outside network 704.2. In thereduced power state, second line card 504.2 may be placed in aninoperative state for communication via second NIH component 506.2 withoutside network 704.2. The reduced power state may provide sufficientpower for second NIH component 506.2 to access data, such as stateinformation in a memory component included in second line card 504.2.Second line card 504.2 may restore the operative coupling of second NIHcomponent 506.2 to outside network 704.2 without performing a completeboot and/or initialization process based on data accessible from thememory component.

In another aspect, setting the power state of a second network interfacecomponent to a hibernate state may include saving state information to adata storage medium and powering off a network interface hardwarecomponent and optionally its including network interface component. Thesaved state information identifies an operational state of the networkinterface hardware component and optionally its including networkinterface component prior to, during, and/or just after determining adecoupling condition is met before disabling an operative coupling ofthe network interface hardware component to a network.

In an aspect, network interface director component 454 in FIG. 4 mayrequest state information from second NIH component 406.2 and optionallyfrom second NIA component 404.2. Network interface director component454 may store the state information in a processor memory of an IPU inexecution environment 402, in a memory component in second NIA component404.2, and/or in a persistent data storage medium, such as a hard-drive.Network interface director component 454 may, subsequently, instruct apower switch controlling an electrical circuit providing power to someor all of the hardware including second NIH component 406.2 in secondNIA component 404.2 to cut off power. Network interface directorcomponent 454 may interoperate with a switch controller (not shown)directly and/or indirectly via power manager 416 and/or second NIAcomponent 404.2. In an aspect, second NIA component 404.2 in a hibernatestate may restore the second operative coupling of second NIH component406.2 to second network 704.2 and restore the saved operational state.

In still another aspect, the method illustrated in FIG. 2a may includereceiving a coupling indication to enable the second operative coupling.The method may further include, enabling the second operative coupling,in response. Network interface director 454 in FIG. 4 may instruct powermanager 416 controlling an electrical circuit providing power to secondNIH component 406.2 to allow sufficient power to boot and/or initializesecond network interface to enable the second operative coupling and/ormay change a configuration of second NIH component 406.2 and/or secondNIA component 404.2 to draw sufficient power.

When the second operative coupling is disabled, a node in inside network704.1 may send data to another node via inside network 704.1. The datamay be received by first line card 504.1 in FIG. 5. A determination thata forwarding condition is met may be performed by forwarding monitorcomponent 552. The data may be data received for forwarding asdetermined by forwarding monitor component 552. Receiving data forforwarding may be configured as a coupling indication. In one aspect,any data received for forwarding may be configured as a couplingindication regardless of whether one of the nodes in the associatedcommunication is in outside network 704.2. In another aspect, a couplingindication may be configured for data received for forwarding between anode in inside network 704.1 and a node in outside network 704.2. Thecoupling indication may be based on a direction for forwarding thereceived data between the two networks.

Alternatively or additionally, detecting a coupling indication mayinclude forwarding data between a node in a third network included ininside network 704.1 and a node included in fourth network included ininside network 704.1. Data received for forwarding may be included in arequest, a response, an asynchronous message, a broadcast communication,and/or multi-cast communication. The received data may be included in amessage including a scoped network address. The scoped address mayexclude and/or include a node in outside network 704.2 as a recipient.

In a further aspect, a coupling indication may be received while asecond network interface component is in a suspended or sleep state.Enabling an operative coupling may include configuring a networkinterface hardware component in suspended state to change to an activestate based on state information accessible in a memory component. In anaspect illustrated in FIG. 5, second line card 504.2 may be in asuspended state. State and/or other operational data may be stored in avolatile memory included in second line card 504.2 accessible to secondNIH component 506.2. Network interface director component 554 mayinstruct power manager 516 to provide second NIH component 506.2sufficient power to access the stored state and/or operationalinformation to restore the second operative coupling to a state thatexisted prior to the disabling of the previously enabled secondoperative coupling.

In yet another aspect, a coupling indication to enable an operativecoupling may be received for a network interface hardware component inhibernate state. Enabling the operative coupling may include configuringthe network interface hardware component based on the accessible stateinformation. In still another aspect, network interface directorcomponent 454 in FIG. 4 may restore power to second NIA component 404.2as described above. Network interface director component 454 maydetermine whether second NIH component 406.2 was placed in hibernatestate. For example, network interface director component 454 may locatestate information stored in a hard-drive while power was cut off fromsecond NIA component 404.2. Once located, network interface directorcomponent 454 may configure second NIH component 406.2 based on thestored state information to enable and restore the state of the secondoperative coupling.

In an aspect, a coupling indication may be an event identifying aparticular time or a particular period of time having a specifiedduration. Network interface director component 454 in FIG. 4 may set atimer before, during, and/or after disabling the operative coupling tooutside network 704.2. The timer may be configured with a specifiedduration. In response to detecting an expiration of the timer, networkinterface director component 454 may provide power for and/or otherwiseinstruction to enable the second operative coupling with outside network704.2 of second NIH component 406.2

Alternatively or additionally, receiving a coupling indication mayinclude receiving second data for forwarding between a node in the firstnetwork and another node. The other node may be in the second network orthe node may be in the first network. In response to receiving thesecond data, the second operative coupling may be enabled by, forexample, increasing power to one or more hardware components includingthe second NIH component in the second network interface component. Thenetwork relay may forward the data. The network relay may forward thedata to a node in the second network. Alternatively or additionally, thedata may be received for forwarding from a first portion of firstnetwork to a second portion of first network. In-between node 702 mayinclude network interface hardware components operatively coupled to thefirst portion and the second portion, respectively.

In a further aspect, receiving the second data for forwarding mayinclude determining that a forwarding condition is met. The forwardingcondition may be met, in an aspect, when the other node is a node in thesecond network. Forwarding the second data in response to determiningthe forwarding condition is met includes forwarding the second data viathe enabled second operative coupling of the second network interface tothe second network.

FIG. 5 illustrates network interface director component 554 included insecond line card 504.2, but not included in first line card 504.1. In anaspect, determining that a decoupling condition is met may have noeffect on the operation of first line card 504.1. As described above,one or both forwarding monitors 552 may determine a decoupling conditionis met. In response, network interface director component 554 may beinstructed by one or both forwarding monitor components 552, directlyand/or indirectly, to disable the second operative coupling to outsidenetwork 704.2. Network interface director component 554 may interoperatewith second line card 504.2 to disable second NIH component 506.2 fromdetecting communications signals and/or generating communicationssignals on the physical communication medium physically included insecond network 704.2 and physically coupled to second NIH component506.2. Network interface director component 554 may direct second linecard 504.2 to change its operating state to a state disabling the secondoperative coupling. In an aspect, this may be performed by changingconfiguration settings without cutting power to second NIH component506.2.

Disabling an operative coupling to a network, in another aspect, mayinclude setting a power state of a network interface hardware componentto prevent receiving and optionally to prevent sending data via thesecond network. For example, line card 504.2 may include a wirelesstransmitter and a wireless receiver. Network interface directorcomponent 554 may disable the receiver but not the transmitter allowingmessages to be forwarded from inside network 704.1 to outside network704.2 but not from outside network 704.2 to inside network 704.1.Analogous to the description for FIG. 4, network interface directorcomponent 554 may cut and/or otherwise reduce power to some or all ofline card 504.2 to disable the operative coupling to outside network704.2.

With reference to FIG. 2b , block 260 illustrates the method includesdetecting, by a network relay including a first network interfacehardware component operatively coupled to a first network, first datafor forwarding between a first node in the first network and an othernode. Accordingly, a system for enabling an operative coupling to anetwork includes means for detecting, by a network relay including afirst network interface hardware component operatively coupled to afirst network, first data for forwarding between a first node in thefirst network and an other node. For example, as illustrated in FIG. 3b, interface activity monitor component 360 is configured for detecting,by a network relay including a first network interface hardwarecomponent operatively coupled to a first network, first data forforwarding between a first node in the first network and an other node.

FIG. 4 and FIG. 6 illustrate interface activity monitor component 460and interface activity monitor component 660 as adaptations and/oranalogs of interface activity monitor component 360 in FIG. 3b . One ormore interface activity monitor components 460 operate in executionenvironment 402, and one or more interface activity monitor components660 operate in execution environment 602.

FIG. 4 illustrates interface activity monitor (IAM) component 460included in link layer 408 monitoring one or more network interfacecomponents including first NIA component 404.1. IAM component 460 maymonitor other NIA components included in execution environment 402. FIG.6 illustrates first IAM component 660.1 included in first line card604.1 monitoring activity for first NIH component 606.1. Other linecards 604 in execution environment 602 may also include respective IAMcomponents 660 according to various aspects. FIG. 6 illustrates secondIAM component 660.2 in second line card 604.2. Multiple IAM components660 are not required in all aspects for performing the methodillustrated in FIG. 2b . FIG. 4 and FIG. 6 are but two examples ofadaptations of IAM component 360. In various adaptations, an IAMcomponent may detect data received for forwarding between inside node706.1 in inside network 704.1 and another node. An IAM component mayoperate to detect data for forwarding in one or more protocol layerssupported in various adaptations of a network relay.

In an aspect, the first node and the other node may be included in thefirst network. For example, the other node may be a third node in thefirst network. The first node may be in a first portion of the firstnetwork and the other node may be in an other portion. Forwarding datamay include forwarding data by the network relay between the firstportion and the other portion via the first operative coupling of thefirst network interface hardware component to the first portion and viaan other operative coupling of an other network interface hardwarecomponent in the network relay to the other portion of the firstnetwork. Inside node 704.1 in FIG. 7 may be in a first subnet and/or afirst LAN in inside network 704.1. A third node (not shown) may be in asecond subnet and/or a second LAN in inside network 704.1. In oneexemplary aspect, in-between node 702 may include a router forforwarding data between the first subnet and the second subnet in insidenetwork 704.1. In another exemplary aspect, in-between node 702 mayinclude a bridge or layer 2 switch for forwarding data between the firstLAN and the second LAN.

FIG. 4 illustrates IAM component 460 operatively coupled to forwardingmonitor component 452. IAM component 460 may receive information fromforwarding monitor component 452 identifying, for example, an IP packetreceived for forwarding between the first subnet and the second subnet.Execution environment 402 may include a third network interfacecomponent 404.3 operatively coupled to the second subnet for receivingdata from and/or sending data to the second subnet. First networkinterface component 404.1 may receive data from and/or send data to thefirst subnet. In an aspect, IAM component 460 operating in link layer408 may detect data for forwarding between the first LAN and the secondLAN based on information in one or more link layer protocols supportedby link layer 408.

In FIG. 6, either or both first IAM component 660.1 and second IAMcomponent 660.2 may detect data for forwarding between a node in thefirst LAN and a node in the second LAN. In another aspect, one or bothof IAM components 660 may interoperate with GPU 612 and/or a componentof GPU 612 to detect data for forwarding at another layer of insidenetwork 704.1. Inside node 706.1 may be either or both a sender and areceiver of data for forwarding by in-between node 702.

In yet another aspect, the other node may be outside node 706.2 inoutside network 704.2. In-between node 702 may receive data via insidenetwork 704.1 from inside node 706.1 for forwarding to outside node706.2 via outside network 704.2. The data for forwarding may be detectedat any of various network layers included in one or both of insidenetwork 704.1 and outside network 704.2 as described above.

In still another aspect, receiving for forwarding may include receivinga message addressed to the network relay, including an indication of thedata for forwarding between the first node and another node. The messagemay be from the first node, the other node, and/or a node other than thefirst node and other than the other node. For example, a networkmanagement node including a network sniffer may send a message to thenetwork relay identifying and/or otherwise providing an indication ofthe data for forwarding. Alternatively or additionally, in-between node702 may receive a message from a bridge, router, switch, and/or othernetwork relay in inside network 704.1 identifying and/or otherwiseproviding an indication of the data for forwarding. In still anotheraspect, in-between node 702 may receive a message from an authorizationservice operating in a node in inside network 704.1. The authorizationservice may receive a request to authorize communication between insidenode 706.1 and the other node. The authorization service may identifyand/or otherwise provide an indication of the data for forwarding basedon the request and/or in response to authorizing the communication.

The method illustrated in FIG. 2b may include receiving previous databefore detecting the first data. A determination may be made that aforwarding condition is not met for the previous data. The previous datamay be identified as data not for forwarding in response to determiningthe forwarding condition is not met. If the second operative coupling isdisabled, the method may include leaving the second operative couplingdisabled based on the determination that the forwarding condition is notmet.

In an aspect, a forwarding condition may specify that the node incommunication with the first node be in the second network. For example,if the detected data for forwarding is between inside node 706.1 and another node in inside network 704.1, in-between node 702 may beconfigured to not determine the operational state of the secondoperative coupling. For example, forwarding component 450 may invokenetwork interface state component 462 when the detected communication isbetween nodes in inside network 704.1 and outside network 704.2 and notinvoke or otherwise interoperate with network interface state component462 when a detected communication does not included a node in outsidenetwork 704.2.

As described above, detecting data for forwarding may includedetermining that a forwarding condition is met. Determining that aforwarding condition is met may include determining that an attribute ofthe detected data matches a forwarding criterion identified by theforwarding condition. One or more of network interface state component662 in FIG. 6 and/or network interface state component 462 in FIG. 4 maydetermine whether a forwarding condition is met to determine whetherreceived data is data for forwarding.

An attribute of received data and/or a forwarding criterion may be basedon the first network, the second network, the first node, the secondnode, a protocol for at least one of sending and receiving the firstdata, at least one of an application sending the first data and anapplication identified as a recipient of the first data, a useridentified with the first data, a node in a network path in a route incommunicating the first data, a type of at least a portion of the firstdata, a pattern included in the first data, a value included in thefirst data, a geospatial location of a node included in communicatingthe first data, a sender of the first data, a receiver of the firstdata, and a relationship between a sender of the first data and areceiver of the first data. In response to determining a forwardingcondition is met, network interface state component 462 in FIG. 4 maydetermine whether the second operative coupling of second NIH component406.2 to outside network 704.2 is disabled.

Returning to FIG. 2b , block 262 illustrates the method further includesdetermining that a second operative coupling of a second networkinterface hardware component in the network relay to a second network isdisabled. Accordingly, a system for enabling an operative coupling to anetwork includes means for determining that a second operative couplingof a second network interface hardware component in the network relay toa second network is disabled. For example, as illustrated in FIG. 3b ,network interface state component 362 is configured for determining thata second operative coupling of a second network interface hardwarecomponent in the network relay to a second network is disabled.

FIG. 4 and FIG. 6 respectively illustrate network interface statecomponent 462 and network interface state component 662 as adaptationsand/or analogs of network interface state component 362 in FIG. 3b . Oneor more network interface state components 462 operate in executionenvironment 402, and one or more network interface state components 662operate in execution environment 602.

Network interface state component 462 in FIG. 4 operates in networkinterface director component 454 and may maintain and/or otherwisemonitor operational state information for one or more NIA components 404in execution environment 402 including second NIA component 404.2. Inone aspect, network interface state component 462 may requestoperational state information from second NIA component 404.2.

In another aspect, determining an operative coupling is disabled mayinclude monitoring a source of power for a network interface hardwarecomponent. Network interface state component 462 may interoperate withpower manager 416 to monitor a power source (not shown) for second NIAcomponent 404.2 to determine the current operational state of the secondoperative coupling between second NIH component 406.2 and outsidenetwork 704.2. Alternatively or additionally, network interface statecomponent 462 in FIG. 4 may include and/or otherwise interoperate with asensor configured to monitor power utilized by second NIH component406.2.

In an aspect, monitoring a power source may include one or more ofdetecting a coupling-threshold condition is met indicating the secondoperative coupling is enabled, determining that an off-thresholdcondition is met indicating the second network interface hardwarecomponent is not receiving power and indicating the second operativecoupling is disabled, and determining that a suspend-threshold conditionis met indicating the second operative coupling is disabled andindicating the second network interface hardware component and/or itsincluding network interface component is receiving sufficient power toaccess data stored in a memory component.

A coupling-threshold condition may be specified to define a level ofpower that when met or exceeded indicates that the second operativecoupling of second NIH component 406.2 and outside network 704.2 isenabled. An off-threshold condition may define a level of power thatwhen met or is less indicates second NIH component 406.2 is powered offand the second operative coupling is disabled. A suspended-thresholdcondition may specify a range, for example by identifying a pair ofpower values. The suspend-threshold condition may specify that a sensedmeasure of power in the range defined by the suspended-thresholdcondition (inclusive and/or exclusive of the range boundaries as definedby the suspended-threshold condition) indicates second NIH component406.2 is in a low-power state where the operative coupling of second NIHcomponent 406.2 to outside network 704.2 is disabled.

FIG. 6 illustrates second network interface state component 662.2included in second line card 604.2. One or more other line cards 604 mayalso include respective network interface state components 662. Anetwork interface state component 662 may be configured to operateanalogous to network interface state component 462 in various aspectsdescribed providing services for a single line card and/or its includednetwork interface hardware component. While a network interface hardwarecomponent 606 along with its including network interface component maysupport any of various states described above with respect to NIHcomponent 406, a line card 604 hosting a network interface statecomponent 662 may draw sufficient power to allow for the operation ofits included network interface state component 662. In an aspect, anetwork interface state component 662 may store state informationexternal to its hosting line card 604 allowing the line card 604 to beset in an off state utilizing no power. Other components in executionenvironment 602 may check the stored state information. A networkinterface state component, in an aspect, may operate at least partiallyin a network interface component and/or at least partially external to anetwork interface component.

In an aspect, determining that the second operative coupling is disabledmay include accessing the second network interface component includingthe second network interface hardware component for at least one ofsending and receiving data via the second network. In response toaccessing the second network interface component, an error indicationmay be received and/or state information may be accessed and/oridentified for determining whether a current state of the second networkinterface component indicates the second operative coupling is disabled.As used herein, an access includes an access attempt. An access may notbe successful, but is still considered an access.

For example, as described above, in-between node 702 may detect data forforwarding between inside node 706.1 and outside node 706.2. Detectingthe data may include receiving the data via first NIH component 606.1operating in in-between node 702 from inside node 706.1 to transmit tooutside node 706.2. First NIH component 606.1 may interoperate withfirst RA component 608.1 to determine that the data is to be forwardedto second line card 604.2 for transmitting the received data to outsidenode 706.2. First FA component 650.1 may be invoked to interoperate withfirst SI component 618.1 to configure a channel in SIU 616 forcommunicating the data to second line card 604.2 for transmitting bysecond NIH component 606.2.

In one aspect, first SI component 618.1 may receive and/or detect afailure or error in establishing a channel. For example, second linecard 604.2 may be powered off and SIU 616 may provide an indication tofirst SI component 618.1 that the channel could not be configured.Alternatively, second line card 604.2 may be operating, but second NIHcomponent 606.2 may be powered off or in a low power state indicatingthe second operative coupling to second network 704.2 is disabled.Second line card 604.2, in one aspect, may provide an error indicationduring channel configuration. In another aspect, channel configurationmay succeed, and second line card 604.2 may return an error in responseto detecting second NIH component 606.2 is not operatively coupled tosecond network 704.2.

In still another aspect, second network interface state component 662.2may share current operational state information with one or more otherline cards 604. First network interface state component 662 may storeand/or otherwise access the shared information prior to attempting tosetup a channel via SIU 616 to determine that the second operativecoupling between in-between node 702 and outside network 704.2 isdisabled. In another example, network interface state component 462 inFIG. 4 may detect current power flow to second NIH component 406.2 todetermine the second operative coupling is disabled.

Returning to FIG. 2b , block 264 illustrates the method yet furtherincludes, in response to detecting the first data for forwarding,configuring the second network interface hardware component to enablethe second operative coupling. Accordingly, a system for enabling anoperative coupling to a network includes means for, in response todetecting the first data for forwarding, configuring the second networkinterface hardware component to enable the second operative coupling.For example, as illustrated in FIG. 3b , interface activator component364 is configured for, in response to detecting the first data forforwarding, configuring the second network interface hardware componentto enable the second operative coupling.

FIG. 4 and FIG. 6 respectively illustrate interface activator component464 and interface activator component 464 as adaptations and/or analogsof interface activator component 364 in FIG. 3b . One or more interfaceactivator components 464 operate in execution environment 402, and oneor more interface activator components 664 operate in executionenvironment 602.

In an aspect, enabling the second operative coupling may includedetermining whether the second network interface hardware component isin an off state receiving no power, in a suspended state receivingsufficient power for accessing data stored in a memory component, and/orin a hibernate state receiving no power and having state informationstored in a data storage medium. In an aspect, network interface statecomponent 462 in FIG. 4 may instruct and/or otherwise indicate tointerface activator component 464 to enable the operative couplingbetween second NIH component 406.2 and outside network 704.2.

In an aspect, configuring a network interface hardware component mayinclude increasing power provided to the network interface hardwarecomponent. In an aspect, interface activator component 464 mayinteroperate with power manager 416 to send a signal to enable a circuitallowing power to flow to second NIA component 404.2 increasing powerprovided to second NIH component 406.2.

In a further aspect, configuring a second network interface hardwarecomponent may additionally include determining the second networkinterface hardware component is in a suspended state, and enabling thesecond operative coupling by accessing data in a memory component. InFIG. 5, second network NIH component 606.2 component may be powered downdisabling the second operative coupling. Second NIH component 606.2 whenreceiving sufficient power may access data in a memory componentincluded in second line card 604.2. Line card 604.2 may be providedsufficient power to maintain the data in the memory component whilepower provided to second network NIH component 606.2 is reduced oreliminated. Enabling the second operative coupling may includeincreasing power provided for second NIH component 606.2. Second NIHcomponent 606.2 may access the memory component to access data torestore or continue an operational state enabling the second operativecoupling.

In another aspect, configuring a network interface hardware componentmay include determining the network interface hardware component is in ahibernate state, and enabling the second operative coupling by providingpower to the second network interface hardware component and providingstate information in data stored in a data storage medium to the networkinterface hardware component. In FIG. 4, network interface statecomponent 462 may determine the second NIA component 404.2 is in ahibernate state by checking a measure of power provided to second NIAcomponent 404.2 and by checking for the presence of saved stateinformation in a data storage medium in execution environment 402.Network interface state component 462 may interoperate with interfaceactivator component 464 to instruct power manager 416 to provide powerto second NIA component 404.2 and/or second NIH component 406.2. Networkinterface state component 462 may interoperate with interface activatorcomponent 464 to provide the state information from the data storagemedium to second NIH component 406.2 and/or instruct second NIAcomponent 404.2 to access the information and provide it to second NIHcomponent 406.2 to enable the second operative coupling and restore thestate of second NIH component 406.2 saved during and/or prior tohibernation.

In FIG. 6, first network interface state component 662.1 in FIG. 6 mayinteroperate with second interface activator component 664.2 toanalogously adjust power available to second NIH component 606.2 toenable the operative coupling with outside network 704.2. Alternativelyor additionally, first network interface state component 662.1 maycommunicate with second interface activator component 664.2 via secondnetwork interface state component 662.2 as illustrated in FIG. 6 and/ormay communicate directly and/or indirectly with second interfaceactivator component 664.2 via other suitable mechanisms in other aspectsand adaptations.

In still another aspect, first interface activator component 664.1 maycommunicate with a power management component (not shown) to provideand/or adjust power available to second NIH component 606.2 and/orsecond line card 604.2. This and other analogous adaptations forconfiguring power control for second NIH component 606.2 external tosecond line card 604.2 may allow second line card 604.2 to be powereddown or otherwise use less power in one or more states when the secondoperative coupling between second NIH component 606.2 and outsidenetwork 704.2 is disabled.

Alternatively or additionally, interface activator 464 in FIG. 4 maychange one or more configuration settings processed by second NIAcomponent 404.2 and/or components that interoperate with second NIHcomponent 406.2 to enable the second operative coupling to outsidenetwork 704.2. These setting may or may not be associated with powermanagement for second NIH component 406.2. One or both interfaceactivators 664 in FIG. 6 may similarly change and/or otherwise providefor changing configuration settings for enabling the second operativecoupling of second NIH component 606.2 and/or second line card 604.2 tooutside network 704.2. Changing a configuration setting may includestoring data and/or deleting data in a storage location accessible to anetwork interface hardware component and/or its including networkinterface component. Data may include executable code and/or data forprocessing by executable code and/or hardware in second networkinterface component 606.2 and/or second line card 604.2.

Returning to FIG. 2b , block 266 illustrates the method additionallyincludes forwarding, via the enabled second operative coupling, datareceived for forwarding between the first network and the secondnetwork. Accordingly, a system for enabling an operative coupling to anetwork also includes means for forwarding, via the enabled secondoperative coupling, data received for forwarding between the firstnetwork and the second network. For example, as illustrated in FIG. 3b ,the forwarding component 350′ is configured for forwarding, via theenabled second operative coupling, data received for forwarding betweenthe first network and the second network.

FIG. 4 and FIG. 6 respectively illustrate forwarding component 450 andforwarding component 650 as adaptations and/or analogs of forwardingcomponent 350′ in FIG. 3b . One or more forwarding components 450operate in execution environment 402, and one or more forwardingcomponents 650 operate in execution environment 602.

Various aspects and adaptations of forwarding component 350′ in FIG. 3b, such as forwarding component 450 in FIG. 4, and forwarding component650 in FIG. 6, may forward data in a communication initiated by insidenode 706.1 and/or by outside node 706.2 according to various aspects andadaptations described above. In some aspects, in response to enablingthe second operative coupling to outside network 704.2 the first dataforwarded is forwarded from inside network 704.1 to outside network704.2 according to a coupling condition. In other aspects, the firstdata forwarded may be sent from a node in either network 704. Afirewall, network address translations (NAT) service, or other networkaccess service may support and/or circumvent operation of variousaspects of various adaptations of the arrangement in FIG. 3 b.

Forwarding data between inside node 706.1 and outside node 706.2 isdescribed above in various aspects with respect to FIG. 4, FIG. 5, andFIG. 6.

To the accomplishment of the foregoing and related ends, thedescriptions and annexed drawings set forth certain illustrative aspectsand implementations of the disclosure. These are indicative of but a fewof the various ways in which one or more aspects of the disclosure maybe employed. The other aspects, advantages, and novel features of thedisclosure will become apparent from the detailed description includedherein when considered in conjunction with the annexed drawings.

It should be understood that the various components illustrated in thevarious block diagrams represent logical components that are configuredto perform the functionality described herein and may be implemented insoftware, hardware, or a combination of the two. Moreover, some or allof these logical components may be combined, some may be omittedaltogether, and additional components may be added while still achievingthe functionality described herein. Thus, the subject matter describedherein may be embodied in many different variations, and all suchvariations are contemplated to be within the scope of what is claimed.

To facilitate an understanding of the subject matter described above,many aspects are described in terms of sequences of actions that may beperformed by elements of a computer system. For example, it will berecognized that the various actions may be performed by specializedcircuits or circuitry (e.g., discrete logic gates interconnected toperform a specialized function), by program instructions being executedby one or more instruction processing units, or by a combination ofboth. The description herein of any sequence of actions is not intendedto imply that the specific order described for performing that sequencemust be followed.

Moreover, the methods described herein may be embodied in executableinstructions stored in a computer readable storage medium for use by orin connection with an instruction execution machine, system, apparatus,or device, such as a computer-based or processor-containing machine,system, apparatus, or device. As used here, a “computer readable storagemedium” may include one or more of any suitable media for storing theexecutable instructions of a computer program in one or more of anelectronic, magnetic, optical, and electromagnetic form, such that theinstruction execution machine, system, apparatus, or device may read (orfetch) the instructions from the computer readable storage medium andexecute the instructions for carrying out the described methods. Anon-exhaustive list of conventional exemplary computer readable storagemedia includes a portable computer diskette; a random access memory(RAM); a read only memory (ROM); an erasable programmable read onlymemory (EPROM or Flash memory); optical storage devices, including aportable compact disc (CD), a portable digital video disc (DVD), a highdefinition DVD (HD-DVD™), a Blu-ray™ disc; and the like.

Thus, the subject matter described herein may be embodied in manydifferent forms, and all such forms are contemplated to be within thescope of what is claimed, including, for example, artificialintelligence (Al). It will be understood that various details may bechanged without departing from the scope of the claimed subject matter.Furthermore, the foregoing description is for the purpose ofillustration only, and not for the purpose of limitation, as the scopeof protection sought is defined by the claims as set forth hereinaftertogether with any equivalents thereof entitled to

All methods described herein may be performed in any order unlessotherwise indicated herein explicitly or by context. The use of theterms “a” and “an” and “the” and similar referents in the context of theforegoing description and in the context of the following claims are tobe construed to include the singular and the plural, unless otherwiseindicated herein explicitly or clearly contradicted by context. Theforegoing description is not to be interpreted as indicating anynon-claimed element is essential to the practice of the subject matteras claimed.

I claim:
 1. A method for enabling an operative coupling to a network,the method comprising: detecting, by a network relay including a firstnetwork interface hardware component operatively coupled to a firstnetwork, first data for forwarding between a first node in the firstnetwork and an other node; determining that a second operative couplingof a second network interface hardware component in the network relay toa second network is disabled, while an enabled operative coupling existsbetween the second network and a network interface hardware componentincluded in a second node; in response to detecting the first data forforwarding, configuring the second network interface hardware componentto enable the second operative coupling; and forwarding, via the enabledsecond operative coupling, data received for forwarding between thefirst network and the second network.
 2. The method of claim 1 whereinthe first node is included in a first portion of the first network andthe other node is included in an other portion of the first network. 3.The method of claim 1 wherein the other node is included in the secondnetwork.
 4. The method of claim 1 further comprising: receiving previousdata before detecting the first data; determining that a forwardingcondition is not met for the previous data; identifying the previousdata as data not for forwarding in response to determining theforwarding condition is not met; and allowing the second operativecoupling to remain disabled based on determining the forwardingcondition is not met.
 5. The method of claim 1 wherein detecting thefirst data for forwarding includes determining that a forwardingcondition is met.
 6. The method of claim 5 wherein determining theforwarding condition is met includes determining an attribute of thefirst data matches a forwarding criterion identified by the forwardingcondition.
 7. The method of claim 6 wherein at least one of theattribute and the forwarding criterion is based on at least one of thefirst network, the second network, the first node, the second node, aprotocol for at least one of sending and receiving the first data, atleast one of an application sending the first data and an applicationidentified as a recipient of the first data, a user identified with thefirst data, a node in a network path in a route in communicating thefirst data, a type of at least a portion of the first data, a patternincluded in the first data, a value included in the first data, ageospatial location of a node included in communicating the first data,a sender of the first data, a receiver of the first data, and arelationship between a sender of the first data and a receiver of thefirst data.
 8. The method of claim 1 wherein determining the secondoperative coupling is disabled includes monitoring a source of power forthe second network interface hardware component.
 9. The method of claim8 wherein monitoring a power source includes at least one of determiningthat a coupling-threshold condition is met indicating the secondoperative coupling is enabled, determining that an off-thresholdcondition is met indicating the second network interface hardwarecomponent is not receiving power and indicating the second operativecoupling is disabled, and determining that a suspend-threshold conditionis met indicating the second operative coupling is disabled andindicating the second network interface hardware component is receivingsufficient power to access data stored in a memory component.
 10. Themethod of claim 1 wherein determining that the second operative couplingis disabled includes accessing a second network interface componentincluding the second network interface hardware component for at leastone of sending and receiving data via the second network.
 11. The methodof claim 10 further comprising, in response to accessing the secondnetwork interface component, at least one of receiving an errorindicating the second operative coupling is disabled and determining acurrent state of the second network interface hardware componentindicates the second operative coupling is disabled.
 12. The method ofclaim 1 wherein configuring the second network interface hardwarecomponent includes determining at least one of whether the secondnetwork interface hardware component is in an off state receiving nopower, in a suspended state receiving sufficient power for accessingdata stored in a memory component, and in a hibernate state receiving nopower and having state information stored in a data storage medium. 13.The method of claim 12 further comprising: determining the secondnetwork interface hardware component is in the suspended state; andenabling the second operative coupling by accessing state informationincluded in the data stored in the memory component.
 14. The method ofclaim 12 further comprising: determining the second network interfacehardware component is in the hibernate state; and enabling the secondoperative coupling by providing power to the second network interfacehardware component and providing state information in the data stored inthe data storage medium to the second network interface component. 15.The method of claim 1 wherein configuring the second network interfacehardware component includes increasing power to the second networkinterface hardware component.
 16. The method of claim 1 whereinforwarding the first data includes sending the first data to a node inthe second network.
 17. A system for enabling an operative coupling to anetwork, the system comprising: an execution environment including aninstruction processing unit wherein an instruction included in at leastone of an interface activity monitor component, a network interfacestate component, an interface activator component, and a forwardingcomponent is executed by the instruction processing unit duringoperation of the system; the interface activity monitor componentconfigured for detecting, by a network relay including a first networkinterface hardware component operatively coupled to a first network,first data for forwarding between a first node in the first network andan other node; the network interface state component configured fordetermining that a second operative coupling of a second networkinterface hardware component in the network relay to a second network isdisabled, while an enabled operative coupling exists between the secondnetwork and a network interface hardware component included in a secondnode; the interface activator component configured for, in response todetecting the first data for forwarding, configuring the second networkinterface hardware component to enable the second operative coupling;and the forwarding component configured for forwarding, via the enabledsecond operative coupling, data received for forwarding between thefirst network and the second network
 18. A computer non-transitoryreadable medium embodying a computer program, executable by a machine,for enabling an operative coupling to a network, the computer programcomprising executable instructions for: detecting, by a network relayincluding a first network interface hardware component operativelycoupled to a first network, first data for forwarding between a firstnode in the first network and an other node; determining that a secondoperative coupling of a second network interface hardware component inthe network relay to a second network is disabled, while an enabledoperative coupling exists between the second network and a networkinterface hardware component included in a second node; in response todetecting the first data for forwarding, configuring the second networkinterface hardware component to enable the second operative coupling;and forwarding, via the enabled second operative coupling, data receivedfor forwarding between the first network and the second network.